package cn.itcast.nems.studentrecord.constant;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

/**
 * <p>
 * 参考单据类型类型枚举
 * 参考单据类型;枚举值：订单｜ORDER、升级｜RENEWAL、转班｜TRANSFER、休学｜SUSPENSION、退学｜DROPOUT、待定班｜DELAY、结课｜FINAL等
 * </p>
 *
 * @author zhouwei
 * @since 2023/9/11 10:39 PM
 **/
@Getter
@AllArgsConstructor
public enum ReferenceTypeEnum {
    ORDER("订单"), 
    RENEWAL("升级"),
    /** 同学科转班 */
    EXCHANGE("同学科转班"),
    /** 非同学科转班 */
    TRANSFER("其他转班"),
    SUSPENSION("休学"),
    /** 退学且退费。注：退费金额可为0 */
    DROPOUT("退学"),
    /** 仅退费，不退学 */
    REFUND("退费"),
    DELAY("待定班"),
    ADJUSTMENT("调价"),
    FINAL("结课"),
    OFFLINE_PAY("离线支付"),
    REPEAT("重读"),
    INIT("初始化"),
    EMS_SYNC("EMS同步"),
    CLAZZ_START_DATE_CHANGE("开班时间变更"),
    FUND_TRANSFER("费用转移"),
    ;

    public final static Set<String> names = Arrays.stream(ReferenceTypeEnum.values()).map(Enum::name).collect(Collectors.toSet());


    private final String name ;
}
